package com.lms.net.udp;

import java.io.IOException;
import java.net.*;

/**
 * @Author: 李孟帅
 * @CreateTime: 2021/6/9$ 12:38$
 * @Description: TODO
 */
public class UDPSender {
    public static void main(String[] args) throws IOException {
        // 创建一个DatagramSocket对象，准备在9998端口接受数据
        DatagramSocket socket = new DatagramSocket(9998);
        // 将需要发送的数据 封装到DatagramPacket对象
        byte[] data = "hello 明天吃火锅去？".getBytes();
        DatagramPacket packet = new DatagramPacket(data, data.length, InetAddress.getByName("127.0.0.1"), 9999);
        socket.send(packet);

        // 接受从A端回复的信息
        byte[] buf = new byte[1024];
        packet = new DatagramPacket(buf, 0, buf.length);
        // 调用接收方法 将通过网络传输的DatagramPacket对象填充到packet对象，
        // 当有数据到达时就会接收数据，没有的话阻塞等待
        System.out.println("等待接收数据。。。。");
        socket.receive(packet);
        // 将packet进行拆包 取出数据,
        int length = packet.getLength();
        data = packet.getData();
        System.out.println(new String(data, 0, length));

        // 关闭资源
        socket.close();
        System.out.println("B端退出");
    }
}
